The present invention relates to data communications equipment and, more particularly, to a modem having a "Personal Computer Memory Card International Association" interface.
The "Personal Computer Memory Card International Association" (PCMCIA) interface defines the physical size and the electrical interconnection for a class of computer peripherals, i.e., PCMCIA peripherals. Generally, the size of a PCMCIA peripheral is approximately that of a "credit card." Each credit card size PCMCIA peripheral electrically interconnects via a PCMCIA electrical connector to a "host computer," which is typically a "notebook" size personal computer (PC). PCMCIA peripherals like memory, modems, fax, hard disks, etc., are currently available.
Like their more conventional cousins, a PCMCIA modem is a complex piece of equipment that comprises specialized microprocessor circuitry. For example, a PCMCIA modem typically includes a general-purpose microprocessor (CPU), memory, a telephone line interface to the Public Switched Telephone Network (PSTN), and a high-speed digital signal processor for processing the respective communications signal in both the transmit and receive directions. The functionality of the PCMCIA modem is provided by the CPU's execution of a computer program, i.e., the "operating program," that resides in the PCMCIA modem's memory. This memory is usually "flash memory," which is a non-volatile memory that is field-programmable by the modem's CPU.
An advantage of the flash memory is that it allows field upgrades of the modem's operating program for either providing new features or "bug" fixes. In order to perform a field upgrade a part of the flash memory is reserved for a "boot block" computer program. This part of the flash memory is write-protected so that it retains its data, i.e., the boot block, even when the rest of the flash memory is erased and reprogrammed. The boot block includes computer software for booting-up the modem, e.g., after application of power, and for loading the remainder of the flash memory with the operating program.
A field upgrade of the modem's flash memory is performed over one of the serial data ports, either the data communications port or the data terminal port. First, the modem's CPU receives a command to reload the operating program from a "host" coupled to one of the serial ports. Then the modem's CPU executes that portion of the boot block associated with loading the flash memory. This part of the software first erases the remaining portion of the flash memory and then receives the new operating program via one of the serial ports and writes the new operating program to the flash memory.
An alternative approach that does not require a non-writable boot block in the flash memory is provided by AT&T Paradyne's 3800 modem, which comprises an independent "upper bank" and "lower bank" of flash memory. The modem's CPU can boot from either bank. The modem's CPU begins operation by executing the computer program stored in one of the flash memory banks, i.e., the active bank of flash memory. This computer program includes the boot code and the operating program. When the modem's CPU receives a command from the host to change the operating program via one of the serial ports, the modem's CPU executes a download program contained in the active bank of flash memory. This download software first erases the non-active bank of flash memory and then copies the received data from one of the serial data ports into the non-active bank. This received data is the new computer program, which contains new boot code and the new operating program. At the conclusion of this download mode, the modem's CPU toggles a non-volatile switch so that it will boot after a reset from the newly updated bank of flash memory, i.e., it switches which bank of flash memory is the active bank. This approach is disclosed in the co-pending, commonly assigned U.S. patent application of Hecht et al. entitled "Apparatus and Method for Downloading Programs," Ser. No. 07/880,257, filed on May 8, 1992, now pending.
As described above, although a flash memory upgrade for a PCMCIA modem via one of the serial ports is an advantageous approach, there are several limitations. One is that during manufacture the boot block must be programmed into the flash memory prior to soldering the flash memory onto the printed circuit board. This adds cost to the manufacturing process of the PCMCIA modem. In addition, if the boot block is somehow erased or corrupted and power to the PCMCIA modem is lost, there is no recovery mechanism other than removing and replacing the flash memory. Furthermore, the size of the boot block is fixed (typically 16K bytes), which presents constraints on the functionality of the boot block. In addition, the boot block similarly constrains the size of the PCMCIA modem's operating program since a portion of the flash memory is dedicated to the boot block. Finally, the speed of any field upgrade is limited because of the use of a serial data port.